Predictive dialing based on simulation

ABSTRACT

Simulation is used to determine optimal dialer parameters for a predictive dialing system. A call history is logged over a period of time for a plurality of outgoing calls initiated by the predictive dialing system. The call history includes call data for each of the outgoing calls. A simulation is run on the call history by adjusting one or more dialer parameters and determining one or more values for those dialer parameter values that provide at least a target agent utilization within the simulation without causing a threshold abandonment rate to be exceeded within the simulation. Timing and/or quantity of outgoing calls to be initiated by the predictive dialing system are determined based, at least in part, on the one or more values for the dialer parameters determined from the simulation. The predictive dialing system initiates outgoing calls in accordance with the determined timing and quantity.

CROSS REFERENCE TO RELATED APPLICATION

The present application claims priority to U.S. provisional patentapplication No. 61/564,756, titled PREDICTIVE DIALING SYSTEM, filed Nov.29, 2011, the entire contents of which are incorporated herein byreference in their entirety for all purposes.

BACKGROUND

Companies and organizations whose staff and/or volunteers make largenumbers of outbound phone calls often use hardware and/or softwaresystems called “dialers” to improve their callers' (“agents”)efficiency. Some dialers automatically dial the next number in a list oftelephone numbers after a previous call in that list has been completedor attempted. These systems may be referred to as “power dialers”, or ifa human agent is required to initiate the next automatic dial for anoutgoing call after concluding the previous call, “preview dialers”.Because only a fraction of dials for outgoing calls are answered, andthose that are answered often take several seconds to be picked up,“predictive dialers” can dial multiple lines for multiple outgoing callsand begin dialing in anticipation of an agent becoming availableshortly. Predictive dialers generate a certain percentage of “abandoned”dials in which an outgoing call is answered by a called party at a timewhen a human agent of the call center is unavailable to serve theoutgoing call.

SUMMARY

Predictive dialing based on simulation is disclosed in the form of apredictive dialing system and method of operation. An example method forpredictive dialing based on simulation includes determining when and/orhow a predictive dialing system should initiate outgoing calls. A callhistory is logged over a period of time for a plurality of outgoingcalls. Simulations on the call history are run with one or more dialerparameters. For each simulation, simulation results such as agentutilization and abandonment rate are calculated. One or more values forthe dialer parameters are determined that provide at least a targetagent utilization without causing a threshold abandonment rate to beexceeded. The timing and quantity of outgoing calls to be initiated bythe predictive dialing system are determined based on the one or morevalues for those dialer parameters determined from the simulation. Forexample, dialer parameters values for the number of lines to dial andthe length of a phone call at which point an agent is consideredavailable may be varied so that these values are optimized to achievethe target agent utilization given a threshold abandonment rate.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an embodiment of an example use environment for determiningoutgoing calls to be initiated by a predictive dialing system.

FIG. 2 shows a process flow depicting an embodiment of an example methodfor determining outgoing calls to be initiated by a predictive dialingsystem.

FIG. 3 shows a process flow depicting an embodiment of an example methodof using a simulation to determine outgoing calls to be initiated by apredictive dialing system.

FIG. 4 shows a process flow depicting an embodiment of an example methodfor using simulation to determine outgoing calls to be initiated by apredictive dialing system.

DETAILED DESCRIPTION

The disclosed subject matter pertains to control of outbound telephonecall centers, in particular those that use computerized dialing toassist their human agents reach a large number of people. Because thecalled party who has received an abandoned call (a call where a humanagent is unavailable) is less likely to answer on subsequent outboundcalling attempts, and because abandonment rates are regulated by theFederal Government, there is a need for predictive dialing systems thatimprove agent utilization while also not exceeding a thresholdabandonment rate. There is also a need for predictive dialing systems toadjust automatically to changing conditions, including changes that maybe relatively sudden in terms of the duration of answered calls, theduration of an agent's wrap-up period following conclusion of the call,and the proportion of dial attempts that are answered by called parties.

Predictive dialing systems may be designed and operated to decreasedowntime between calls without while maintaining an acceptableabandonment rate. Predictive dialing systems monitor one or moreparameters about each outgoing call (e.g. duration of connect, time fromstart of dialing until answer, proportion of call attempts that resultin an answer) and then use those parameters to influence the scheduling(e.g. quantity and/or timing) of subsequent outbound calls. Whichparameters are used and how they are incorporated into determining thescheduling of future dials may determine the efficiency of thepredictive dialer. Accordingly, the disclosed subject matter relates tothe determination of the quantity and/or timing of outgoing calls to beinitiated by a predictive dialer using simulation to achieve targetagent utilization while maintaining acceptable abandonment rates.

FIG. 1 schematically depicts an embodiment of an example use environment100 for determining outgoing calls to be initiated by a predictivedialing system 102 for one or more telephones 104. Telephones 104 may beoperated by one or more human agents on behalf of which predictivedialing system 102 initiates calls to target entities (e.g., othertelephones or VoIP clients) within a communications network. Thesetarget entities may be represented by phone numbers or other suitablenetwork identities (e.g., VoIP identities) within the communicationsnetwork.

While the embodiment of FIG. 1 depicts a single telephone asrepresenting one or more telephones 104, it will be understood that anysuitable number of telephones may be present, and may be operated by anysuitable number of human agents. Further, while the embodiment of FIG. 1depicts a “land-line” telephone, it will be understood that thetelephones 104 may be of any type, including but not limited to, Voiceover Internet Protocol (“VOIP”), wired, wireless, cellular, and thelike. Accordingly, the disclosed subject matter may be used incombination with various voice communication protocols over any suitablecommunications network, including POTS/PSTN, IP/Internet (e.g., viaVoIP), wireless 3G/4G, etc.

Predictive dialing system 102 may include a computing system 110 formedfrom one or more computing devices. These computing devices may resideat the same call center or may be distributed across multiplegeographically remote locations where they communicate via a wide areacommunications network. Computing system 110 includes a logic subsystem112, a storage subsystem 114, and a communications subsystem 116.Communications subsystem 116 typically interfaces with a communicationsnetwork, and enables computing system 110 to communicate with telephones104 and the equipment of called parties, and to bridge telephones 104with the equipment of called parties. Logic subsystem 112 may includeone or more processors or other suitable logic elements. In one example,logic subsystem 112 accesses and executes instructions held in storagesubsystem 114. In at least some examples, the instructions may includeone or more modules that define respective functional subsystems ofpredictive dialing system 102.

For example, predictive dialing system 102 may include a call flowmodule 120. Call flow module 120 may take the form of a computer programconfigured to log call data (e.g., raw call data 122) for each outgoingcall initiated by telephones 104 or by predictive dialing system 102 onbehalf of telephones 104. Call data for an individual call may includeone or more of a call identifier 124, agent identifier 126, timestamp128, ring duration 130, an indication 132 of whether or not the call wasanswered, an indication 134 of whether or not the call was abandoned,and/or a call duration 136. In other embodiments, there may beadditional call data items, fewer call data items, and/or different calldata items in relation to those depicted in FIG. 1.

Agent identifier 126 may be used to enable tracking of which human agentwas associated with a particular call as indicated by a call identifier(e.g., call identifier 124). Timestamp 128 may indicate a date and/or atime that the call was initiated and/or concluded. Ring duration 130 mayrefer to a period of time that the call was ringing before beinganswered by the called party or being terminated by the predictivedialing system upon reaching a time-out condition or maximum duration.Duration 136 may refer to the duration of the call from being answeredby the called party through conclusion of the call. In otherembodiments, there may be additional/fewer call data items and/ordifferent types of call data.

Call data, such as raw call data 122, that has been logged for anindividual call may be processed in combination with other callsinitiated by telephones 104 or by predictive dialing system 102 onbehalf of telephones 104 to obtain processed call data 140. For example,call flow module 120 or other suitable functional entity may computeprocessed call data 140 based on raw call data obtained from anysuitable number of calls. Processed call data 140 may be based on one ormore calls logged over a period of time that collectively form a callhistory 160. Call flow module 120 may log a call history over anysuitable period of time (e.g., 10 seconds, 30 seconds, 10 minutes, 30minutes, 1 hour, 1 day, 1 week, 1 month, 1 year, etc.) for a pluralityof outgoing calls initiated by the predictive dialing system.

Processed call data 140 for logged call history 160 may include one ormore of a connection rate 142, a mean conversation length 144 (i.e., anaverage duration), a maximum conversation length 146 (i.e., a maximumduration within a set of calls), a mean wrap-up length of time 148, amaximum wrap-up length of time 150, an agent utilization 152, and/or anabandonment rate 154, among other suitable call data information.Connection rate 142 may refer to a proportion of outgoing calls thatwere answered by the called party. Agent utilization 152 may refer to anamount of time that human agents are engaged in a task such as aconversation with a called party and/or optionally a wrap-up periodfollowing conclusion of a call during which the human agent makes notesto a file concerning the call. Abandonment rate 154 may refer to anumber of calls that were answered by the called party for which a humanagent was not available as compared to the total number of outgoingcalls initiated during the period of time. The call data items describedherein may additionally or alternatively include minimums (e.g., minimumconversation length, or minimum wrap-up length) beyond their maximum andmean values.

A call history logged by call flow module 120 over a period of time maybe associated with a call history identifier, such as call historyidentifier 162 for call history 160, enabling individual call historiesto be distinguish from each other. Call flow module 120 may log aplurality of call histories over different periods of time, with eachcall history including call data for a plurality of calls initiatedand/or continuing within or throughout its respective period of time. Anindividual call history may include call data for tens, hundreds,thousands, or millions of calls.

In some examples, call flow module 120 may continuously or periodicallymonitor calls for telephones 104, log raw call data for those calls, andprocess the raw call data to obtain processed call data. In someexamples, portions of call data logged by call flow module 120 may bestored for a limited amount of time (e.g. only the last 10 minutes ofraw call data may be stored) while retaining processed call data for alonger period of time. However, in other examples, all forms of calldata or different subsets of call data may be retained.

Predictive dialing system 102 may include a simulator module 170.Simulator module 170 may take the form of a computer program configuredto run simulations on call histories logged over a period of time,including the call data logged by call flow module 120. The call datamay be used as inputs for one or more simulations run by simulationmodule 170, such as example simulation 172. Dialer parameters 176 may beadjusted within simulation 172 to achieve a simulated agent utilization178 and/or a simulated abandonment rate 180 that is based on theadjusted dialer parameters 176 and/or the call data inputs.

In some examples, a simulation, such as example simulation 174, mayinclude an iterative simulation having two or more simulation iterationsfor converging on one or more defined values or value ranges. As anon-limiting example, simulation module 170 may iterate through allspecified combinations of values for dialer parameters 176 within anindividual simulation. These specified combinations may include adefined range of dialer parameter values and defined increments intowhich the defined range of dialer parameter values are to be divided orselected for use in the simulation. However, other suitable techniquesmay be used to determine optimized values without iterating through allcombinations of dialer parameter values within a simulation.

For example, as described in further detail with reference to FIGS. 3and 4, simulations may be used to determine the timing and/or quantityof outgoing calls to be initiated by the predictive dialing system toachieve at least a target agent utilization (e.g., a maximum agentutilization or other suitable target value) without causing a thresholdabandonment rate to be exceeded. Here, for each simulation, includingexample simulation 172, simulation module 170 computes agent utilization178 and abandonment rate 130 based on the call data and/or adjusteddialer parameters. In other embodiments, other predictive values (e.g.,performance metrics) may be used instead of agent utilization 178 andabandonment rate 180. Each simulation may be associated with asimulation identifier 174 that enables two or more simulations to bedistinguished from each other. Furthermore, in some examples, individualiterations within a simulation may be associated with an iterationidentifier to enable two or more iterations of the simulation to bedistinguished from each other.

Predictive dialing system 102 may include a predictive dialer module190. Predictive dialer module 190 may take the form of a computerprogram that utilizes one or more dialer parameter values obtained fromone or more simulations in combination with state information 192 todetermine a timing and/or quantity of outgoing calls that are to beinitiated by the predictive dialing system. A queue or set of calls tobe initiated 194 (e.g., a dialing list) may be referenced by thepredictive dialer module when initiating an outgoing call. In someexamples, predictive dialer module 190 may be configured to loopconstantly, calculating how many outgoing calls to initiate at any giventime based on dialer parameters determined from simulation and stateinformation 192, and to dial the telephone numbers or other suitablenetwork identifier to initiate those calls.

Non-limiting examples of state information 192 include a total number ofhuman agents currently manning their workstations, a number of currentlyavailable human agents, a number of human agents currently engaged in ananswered call, a number of human agents currently engaged in a wrap-upperiod following conclusion of a call, a current duration of eachanswered call, a current ringing duration of each dialed call, a totalnumber of dialed calls yet to be answered, and/or a length of time sinceeach agent has concluded a call, among other suitable forms of stateinformation. The total number of human agents currently operating theirworkstations may be identified from a login process and/or logoutprocess in which human agents login to the predictive dialing system atthe beginning of a work shift and logout at the conclusion of the workshift at their respective workstations. In some examples, a wrap-upperiod may be identified as the period of time between conclusion of acall and a time at which a human agent indicates that he or she is readyto accept another call with a called party. State information mayinclude or may be based on call data obtained from call flow module 120.

Predictive dialer module 190, call flow module 120, and simulator module170 are typically computer programs stored on a mass storage device of acomputing device, and executed by a processor using portions of memoryof a computing device. Instructions for these computer programs may bestored on a computer readable storage media of storage subsystem 112,such as a hard-drive, DVD-ROM, CD-ROM, FLASH memory device, etc., forexecution by the processor of a computing device. Other suitableinstructions for implementing the methods described below may also bestored on appropriate computer readable storage media, or on massstorage device of storage subsystem 112, and may cause computing system110 to implement the methods described herein upon execution by aprocessor.

While predictive dialer module 190, call flow module 120, and simulatormodule 170 are depicted separately, it will be understood that they maybe arranged in any suitable combination. Thus, some or all of thesemodules may be integrated in a single program, or distributed amongstseveral programs, and may be executed on a single computing device, oron a plurality of different computing devices. Further, it will beunderstood that the term “program’ refers to a functional collection ofcomputer code, and may include one or more executable files, data files,data libraries, etc.

FIG. 2 shows a process flow depicting an embodiment of an example method200 for determining outgoing calls to be initiated by a predictivedialing system. As a non-limiting example, method 200 may be performed,at least in part, by predictive dialing system 102 of FIG. 1.

At block 201, method 200 examines the current state of the system (i.e.,state information 222), including but not limited to the number ofagents available for a call, and the number of agents not available fora call but predicted to become available soon, to determine theappropriate number of lines to dial at the present moment. Stateinformation 222 may additionally or alternatively include the variousforms of call data previously described with reference to FIG. 1. Insome examples, a predictive algorithm may use, as inputs for itscalculations, state information 222 in combination with an output of asimulation (i.e., simulation results), such as may be obtained from theexample simulation techniques described with reference to FIGS. 3 and 4.Regardless of the algorithm that is used, once the calculations havebeen completed, method 200 may continue to block 202. The one or moreoutgoing calls (one or more dials) to be initiated at block 202 areeffected by the calculations of block 220.

As indicated in block 202, method 200 includes initiating calls to oneor more telephone numbers or other suitable network identities. Indetermining the quantity of outgoing calls to initiate (e.g., the amountof dials to be made), method 200 may consider the number of dials inprogress 203, which may also be obtained from state information 222. Forexample, if five simultaneous dials are needed and two are currently inprogress as indicated by state information 222, only three new dialswould be initiated.

State information 222 may be obtained from previously described callflow module 120 that monitors outgoing calls. A non-limiting example ofa call flow for an outgoing call is described in FIG. 2 with referenceto call flow 220. It will be understood that call flow 220 is anon-limiting example of a call flow that may be used in combination withthe simulation and call initiation techniques described herein. It willbe understood that other suitable call flows that differ from call flow220 may be used in combination with these simulation and call initiationtechniques. In some examples, call flow module 120 may be configured tomanage and/or process outgoing calls according to example call flow 220or other suitable call flow.

At block 204 of call flow 220, method 200 evaluates if each call hasbeen answered. If the call has not been answered, method 200 determineswhether it has rung for a sufficiently long period of time. If so, ithangs up the line at block 206; if not, it lets the line continueringing. A Either way, it continues on to block 220. If the call hasbeen answered, method 200 moves to block 208.

At block 208, method 200 evaluates if an agent is available to join theanswered call. If an agent is not available (this scenario is known asabandonment), method 200 optionally plays an abandonment message atblock 210, hangs up the line at block 212. If an agent is available tojoin the call, method 200 moves on to block 214 where the answered callis connected to the available agent. From 214, method 200 continues toblock 218 in which it is determined that the call has been completed.

State information 222 may include an indication of the state of anoutgoing call at any point within a call flow, such as example call flow220 or other suitable call flow. For example, state information 222 mayindicate whether the call has been answered at 204, whether an agent isavailable at 208, whether an agent has been added to call at 214,whether the call has been completed at 218, or whether the call hasended in a hang up at 212 or 206.

FIG. 3 shows a process flow depicting an embodiment of an example method300 of using simulation to determine outgoing calls to be initiated by apredictive dialing system. As a non-limiting example, method 300 may beperformed, at least in part, by predictive dialing system 102 of FIG. 1.

At 310, the method includes logging a call history over a period of timefor a plurality of outgoing calls initiated by the predictive dialingsystem. As previously described in the context of FIG. 1, the callhistory may include call data for each of the outgoing calls. Theplurality of outgoing calls may include all of the outgoing callsinitiated or existing during the period of time, or a subset (e.g., asampling) of the outgoing calls initiated or existing during the periodof time. Non-limiting examples of call data the call data associatedwith each outgoing call of the call history include date of the call,time of the call, ring duration, whether the call was answered, whetherthe call was abandoned, and/or call duration, among other suitable formsof call data.

In some examples, the period of time over which call history is loggedmay include a preceding window of time ending at a time when thesimulation is run at 312. In some examples, the period of time overwhich call history is logged may be programmatically determined toinclude a pre-defined number of outgoing calls (e.g., ten, one hundred,one thousand, one million, etc.) and/or a pre-defined time range ofoutgoing calls (e.g., 10 seconds, 30 seconds, 1 minute, 10 minutes, 1day, 1 week, 1 month, 1 year, etc.).

At 312, the method includes running a simulation on the call history. Inone example, the simulation may be run based on the call data byadjusting one or more dialer parameters within the simulation at 314,identifying agent utilization and abandonment rate within the simulationat 316, and determining one or more values for those dialer parametervalues at 318 that provide at least a target agent utilization (e.g., amaximum agent utilization or other suitable target value) within thesimulation without causing a threshold abandonment rate to be exceededwithin the simulation. As one example target agent utilization may beset to a maximum agent utilization previously achieved by the predictivedialing system either within a simulation or within an actualuse-scenario. The method at 318 may include determining whether the oneor more dialer values currently used by the predictive dialer module toinitiate outgoing calls provide at least the target agent utilizationwithin the simulation while maintaining an acceptable abandonment ratewithin the simulation.

The one or more dialer parameters may include one or more of aconnection rate, a mean conversation length, a maximum conversationlength, a mean wrap-up length, a maximum wrap-up length, and/or anabandonment rate. However, other suitable dialer parameters may beconsidered and adjusted.

As one example, the method at 318 may include comparing the agentutilization and abandonment rate identified at 316 to the target agentutilization and the threshold abandonment rate to determine at 320whether target values or threshold conditions have been satisfied withinthe simulation. If target values or threshold conditions have not besatisfied within the simulation (e.g., the agent utilization is lessthan the target agent utilization and/or the abandonment rate is greaterthan the threshold abandonment rate for the dialer parameters adjustedat 314), then the process flow may return to 314 where the one or moredialer parameters may be further adjusted for a subsequent iteration ofthe simulation. If target values and threshold conditions have beensatisfied within the simulation (e.g., the agent utilization provides atleast the target agent utilization and the abandonment rate has notexceeded the threshold abandonment rate within the simulation), then theprocess flow may proceed to 322 where the one or more values for the oneor more dialer parameters determined from the simulation are outputand/or stored.

In some examples, the target agent utilization is a maximum agentutilization value (i.e., an optimized agent utilization) without causingthe threshold abandonment rate to be exceeded within the simulation. Thetarget agent utilization may be a pre-defined agent utilization or auser-defined agent utilization. The threshold abandonment rate may be apre-defined abandonment rate or a user-defined abandonment rate. In someexamples, an administrator of the predictive dialing system may defineand/or adjust the agent utilization and/or abandonment rates that areused within the simulation.

At 324, the method includes determining outgoing calls to be initiatedby the predictive dialing system based, at least in part, on the one ormore values for the dialer parameters determined from the simulation. Insome examples, the method at 324 may include determining a timing of theoutgoing calls and/or determining a quantity of the outgoing calls. Anysuitable technique may be used to determine timing and/or quantity ofoutbound calls to be initiated by the predictive dialing system.Typically, the determination of timing and/or quantity of outbound callsmay be further based on state information, including a total number ofhuman agents currently operating their workstations, a number ofcurrently available human agents, a number of human agents currentlyengaged in an answered call, a number of human agents currently orlikely engaged in a wrap-up period following conclusion of a call, acurrent duration of each answered call, a current ringing duration ofeach dialed call, a total number of dialed calls yet to be answered,and/or a length of time since each agent has concluded a call, amongother suitable forms of state information. Hence, a combination of stateinformation and dialer parameter values may be used to determine timingand/or quantity for initiating outgoing calls.

At 326, the method includes initiating, via the predictive dialingsystem, the outgoing calls determined based, at least in part, on theone or more values for the dialer parameters determined from thesimulation. Dialer parameters values that are obtained from a simulationmay be referred to as applied dialer parameter values if used by apredictive dialer module to initiate outgoing calls. For example, thepredictive dialing system may initiate one or more outgoing callsaccording to the timing and/or quantity determined at 324. In certaincontexts, the predictive dialing system may initiate a number ofoutgoing calls in parallel or substantially in parallel in periodic ortemporally distinct groups or batches. As one example, the periodic ortemporally distinct groups or batches of outgoing calls may be initiatedresponsive to an update of dialer parameter values (e.g., an update tothe applied dialer parameter values) and/or state information at thepredictive dialer module.

Where the simulation includes an iterative simulation, the method at 312may include iteratively adjusting the one or more dialer parameters at314, identifying agent utilization and abandonment rates at 316, anddetermining one or more values for those dialer parameters at 318 overtwo or more simulation iterations until at least a target agentutilization within a simulation iteration is achieved without causing athreshold abandonment rate to be exceeded within that iterationsimulation. The determination of outgoing calls to be initiated by thepredictive dialing system at 324 may be based, at least in part, on theone or more values for the dialer parameters determined from thatiteration simulation.

Method 300 of FIG. 3 may be applied to each call history of a pluralityof successive call histories. For example, a plurality of successivecall histories may be logged in which each call history including calldata for outgoing calls initiated by the predictive dialing systemwithin a respective period of time. Here, each period of time forms asliding window of time among the plurality of successive call histories.For each call history of the plurality of successive call histories, arespective simulation may be run on that call history by adjusting oneor more dialer parameters and determining one or more updated values forthose dialer parameter values that provide at least the target agentutilization within that simulation without causing the thresholdabandonment rate to be exceeded within that simulation. Outgoing callsto be initiated by the predictive dialing system may be determinedbased, at least in part, on the one or more updated values for thedialer parameters determined from that simulation. With each successivecall history that is logged, a new simulation may be run, and updatedvalues for the dialer parameters may be determined. The timing andquantity of outgoing calls initiated by the predictive dialing systemmay be continuously or periodically influenced by updated values for thedialer parameters as such updates are obtained. As a non-limitingexample, call histories may be logged every 30 seconds, and simulationsmay be run on those logged call histories, enabling dialer parametervalues used by the predictive dialer module to initiate outgoing callsto be updated every 30 seconds.

FIG. 4 shows a process flow depicting an embodiment of an example method400 for using simulation to determine outgoing calls to be initiated bya predictive dialer. As a non-limiting example, method 400 may beperformed, at least in part, by predictive dialing system 102 of FIG. 1.At block 402, method 400 iterates a simulation over a set of dialerparameter values. The set of dialer parameter values may include allcombinations of values 404, a user-defined range of values 406, or aprogrammatically-defined range of values 408.

At block 410, method 400 computes simulation results for eachcombination of dialer parameter values. The simulation results may, forexample, include abandonment rate 412 and agent utilization 414. Inother embodiments, there may be additional/fewer simulation resultsand/or different types of simulation results. At block 416, method 400determines optimum dialer parameter values that satisfy simulationresult criteria such as a target agent utilization and a thresholdabandonment rate. The optimum dialer parameter values may be, forexample, the set of dialer parameter values that maximize agentutilization 414 or exceed a previous maximum agent utilization whileensuring abandonment rate 412 does not exceed a maximum abandonment rate(e.g., a threshold abandonment rate).

It is to be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificembodiments or examples are not to be considered in a limiting sense,because numerous variations are possible. The specific routines ormethods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated may beperformed in the sequence illustrated, in other sequences, in parallel,or in some cases omitted. Likewise, the order of the above-describedprocesses may be changed.

The subject matter of the present disclosure includes all novel andnonobvious combinations and subcombinations of the various processes,systems and configurations, and other features, functions, acts, and/orproperties disclosed herein, as well as any and all equivalents thereof.

1. A method of determining outgoing calls to be initiated by apredictive dialing system, the method comprising: logging a call historyover a period of time for a plurality of outgoing calls initiated by thepredictive dialing system, the call history including call data for eachof the outgoing calls; running a simulation on the call history byadjusting one or more dialer parameters and determining one or morevalues for those dialer parameter values that provide at least a targetagent utilization within the simulation without causing a thresholdabandonment rate to be exceeded within the simulation; and determiningoutgoing calls to be initiated by the predictive dialing system based,at least in part, on the one or more values for the dialer parametersdetermined from the simulation.
 2. The method of claim 1, wherein thecall data associated with each outgoing call of the call historyincludes one or more of: date of the call, time of the call, ringduration, whether the call was answered, whether the call was abandoned,and/or call duration.
 3. The method of claim 1, wherein the period oftime is a preceding window of time ending at a time when the simulationis run.
 4. The method of claim 1, wherein the period of time isprogrammatically determined to include a pre-defined number of outgoingcalls or a pre-defined time range of outgoing calls.
 5. The method ofclaim 1, wherein the one or more dialer parameters include one or moreof: connection rate, mean conversation length, maximum conversationlength, mean wrap-up length, maximum wrap-up length, and/or abandonmentrate.
 6. The method of claim 1, wherein the target agent utilization isa maximum agent utilization value without causing the thresholdabandonment rate to be exceeded within the simulation.
 7. The method ofclaim 1, wherein the target agent utilization is a pre-defined agentutilization or a user-defined agent utilization.
 8. The method of claim1, further comprising: initiating, via the predictive dialing system,the outgoing calls determined based, at least in part, on the one ormore values for the dialer parameters determined from the simulation. 9.The method of claim 1, wherein determining outgoing calls to beinitiated by the predictive dialing system includes determining a timingof the outgoing calls and/or determining a quantity of the outgoingcalls.
 10. The method of claim 1, wherein the simulation includes aniterative simulation; and wherein the method further comprises:iteratively adjusting the one or more dialer parameters and determiningone or more values for those dialer parameters over two or moresimulation iterations until at least a target agent utilization within asimulation iteration is achieved without causing a threshold abandonmentrate to be exceeded within that iteration simulation; and determiningthe outgoing calls to be initiated by the predictive dialing systembased, at least in part, on the one or more values for the dialerparameters determined from that iteration simulation.
 11. The method ofclaim 1, wherein the call history is one of a plurality of successivecall histories, the method further comprising: logging the plurality ofsuccessive call histories, each call history including call data foroutgoing calls initiated by the predictive dialing system within arespective period of time that forms a sliding window of time among theplurality of successive call histories; for each call history of theplurality of successive call histories: running a respective simulationon that call history by adjusting one or more dialer parameters anddetermining one or more updated values for those dialer parameter valuesthat provide at least the target agent utilization within thatsimulation without causing the threshold abandonment rate to be exceededwithin that simulation; and determining outgoing calls to be initiatedby the predictive dialing system based, at least in part, on the one ormore updated values for the dialer parameters determined from thatsimulation.
 12. A storage subsystem holding instructions executable by alogic subsystem of a predictive dialing system to: log a call historyover a period of time for a plurality of outgoing calls initiated by apredictive dialing system, the call history including call data for eachof the outgoing calls; run a simulation on the call history by adjustingone or more dialer parameters and determining one or more values forthose dialer parameter values that provide at least a target agentutilization within the simulation without causing a thresholdabandonment rate to be exceeded within the simulation; determineoutgoing calls to be initiated by the predictive dialing system based,at least in part, on the one or more values for the dialer parametersdetermined from the simulation; and initiate, via the predictive dialingsystem, the outgoing calls determined based, at least in part, on theone or more values for the dialer parameters determined from thesimulation.
 13. The storage subsystem of claim 12, wherein thesimulation includes an iterative simulation; and wherein theinstructions are further executable by the logic subsystem to:iteratively adjust the one or more dialer parameters and determine oneor more values for those dialer parameters over two or more simulationiterations until at least a target agent utilization within a simulationiteration is achieved without causing a threshold abandonment rate to beexceeded within that iteration simulation; and determine the outgoingcalls to be initiated by the predictive dialing system based, at leastin part, on the one or more values for the dialer parameters determinedfrom that iteration simulation.
 14. The storage subsystem of claim 12,wherein the call data associated with each outgoing call of the callhistory includes one or more of: date of the call, time of the call,ring duration, whether the call was answered, whether the call wasabandoned, and/or call duration.
 15. The storage subsystem of claim 12,wherein the period of time is programmatically determined to include apre-defined number of outgoing calls and/or a pre-defined time range ofoutgoing calls.
 16. The storage subsystem of claim 12, wherein the oneor more dialer parameters include one or more of: connection rate, meanconversation length, maximum conversation length, mean wrap-up length,maximum wrap-up length, and/or abandonment rate.
 17. The storagesubsystem of claim 12, wherein the target agent utilization is a maximumagent utilization value without causing the threshold abandonment rateto be exceeded within the simulation.
 18. The storage subsystem of claim12, wherein the target agent utilization is a pre-defined agentutilization or a user-defined agent utilization.
 19. The storagesubsystem of claim 12, wherein determining outgoing calls to beinitiated by the predictive dialing system includes determining a timingof the outgoing calls and/or determining a quantity of the outgoingcalls to be initiated.
 20. A predictive dialing system to determineoutgoing calls to be initiated by the predictive dialing system, thesystem comprising: a call flow module configured to log a call historyover a period of time for a plurality of outgoing calls, the callhistory including call data for each of the outgoing calls; a simulatormodule configured to run an iterative simulation on the call history byiteratively adjusting the one or more dialer parameters and determiningone or more values for those dialer parameter values over two or moresimulation iterations until at least a target agent utilization within asimulation iteration is achieved without causing a threshold abandonmentrate to be exceeded within that iteration simulation; and a predictivedialer module configured to determine a timing and quantity of outgoingcalls to be initiated by the predictive dialing system based, at leastin part, on the one or more values for the dialer parameters determinedfrom that iteration simulation, and initiate the outgoing calls inaccordance with the timing and quantity.